home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.20041116-20060924 / 000172_fdc@columbia.edu_Mon Oct 17 15:31:11 2005.msg < prev    next >
Internet Message Format  |  2020-01-01  |  3KB

  1. Path: newsmaster.cc.columbia.edu!not-for-mail
  2. From: Frank da Cruz <fdc@columbia.edu>
  3. Newsgroups: comp.protocols.kermit.misc
  4. Subject: Re: set timeout for HTTP transfers?
  5. Date: 17 Oct 2005 19:09:21 GMT
  6. Organization: Columbia University
  7. Lines: 38
  8. Message-ID: <slrndl7tn1.g88.fdc@sesame.cc.columbia.edu>
  9. References: <1129528599.691472.17580@g44g2000cwa.googlegroups.com>
  10. Reply-To: fdc@columbia.edu
  11. NNTP-Posting-Host: sesame.cc.columbia.edu
  12. X-Trace: newsmaster.cc.columbia.edu 1129576161 10756 128.59.59.56 (17 Oct 2005 19:09:21 GMT)
  13. X-Complaints-To: postmaster@columbia.edu
  14. NNTP-Posting-Date: 17 Oct 2005 19:09:21 GMT
  15. User-Agent: slrn/0.9.8.0 (SunOS)
  16. Xref: newsmaster.cc.columbia.edu comp.protocols.kermit.misc:15415
  17.  
  18. On 2005-10-17, tomviolin <rock_spambust_violin@yahoo.com> wrote:
  19. : I have a Kermit data collection script that, among other things,
  20. : retrieves a file via HTTP.  I am having trouble with the HTTP GET
  21. : command failing with a timeout every once in a while.
  22. :
  23. : The data I'm getting from the HTTP server isn't critical and so I'd
  24. : like to set a short timeout on the HTTP GET operation so my whole data
  25. : collection operation doesn't get held up waiting.
  26. :
  27. : How does one set the timeout for the HTTP GET operation?
  28. :
  29. Right now, there's no way.  Ditto for FTP, which has also been mentioned
  30. several times in this connection.  It's easy enough (if rather tedious)
  31. to add alarm()/signal()/setjmp()/longjmp() for Unix, but it's not
  32. portable to the non-Unix platforms where the C-Kermit code must also run.
  33. Unlike most other non-portable constructions, the Unix alarm mechanism is
  34. structural.   And it has to be added to each and every place where we are
  35. doing network i/o for HTTP (or FTP).  In the case of HTTP, this would be
  36. in ckcnet.c, routines http_connect(), http_open(), http_close(), http_inc(), 
  37. http_ttol(), http_get(), http_head(), etc etc, a big mess.  Similarly for
  38. FTP.  It's not impossible but it's a lot of work and a lot of risk for
  39. not a lot of gain compared with some other items on the to-do list.
  40.  
  41. Another approach might be to add a generalized timer and trap feature to
  42. the Kermit command language, and then users could put timeouts around
  43. anything they wanted:
  44.  
  45.   set timer 5
  46.   http /array:&a get http://www.blah.com/index.html
  47.   .http_status := \v(status)
  48.   clear timer
  49.   if (\m(http_status)) ...
  50.  
  51. The problem there is, how does Kermit know what was going on that needs
  52. to be cleaned up if the timer goes off?  Open connections and whatnot.
  53. Maybe it doesn't matter, maybe it's worth looking into.
  54.  
  55. - Frank